123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- "use client";
- import { FC, PropsWithChildren, } from "react";
- import {Modal, ModalContent, ModalBody, ModalFooter, useDisclosure} from "@nextui-org/react";
- import "./style.scss";
- import { useGlobalStore } from '@/stores';
- import { useRouter } from "@/i18n";
- import {getLogoutApi} from "@/api/user";
- /**
- * @description 底部组件
- */
- export interface ItemComProps {
- type?: string;
- callbackFun?: (params: any) => void;
- }
- const ModalCom: FC<PropsWithChildren<ItemComProps>> = () => {
- const { token, setToken, setUserInfo } = useGlobalStore();
- const { isOpen, onOpen, onClose, onOpenChange } = useDisclosure();
- const logoutRequest = async () => {
- let res = await getLogoutApi()
- if(res.code == 200) {
- onClose()
- setUserInfo('')
- setToken('')
- router.replace('/login')
- }
- }
- const router = useRouter();
- const goPage = (path = '/') => {
- router.push(path)
- }
- return (
- <>
- {
- token ? <span className="logOut" onClick={onOpen}>Sair</span> : (
- <span className="logOut" onClick={() => goPage('/login')}>Login</span>
- )
- }
- <Modal
- backdrop="opaque"
- isOpen={isOpen}
- size="5xl"
- placement={'center'}
- onOpenChange={onOpenChange}
- hideCloseButton={true}
- classNames={{
- body: "body1-box",
- footer: "footer1-box",
- }}
- >
- <ModalContent>
- {(onClose) => (
- <>
- <ModalBody>
- <p className="modal-p-box">Deseja sair?</p>
- </ModalBody>
- <ModalFooter>
- <span className="modal-span-box" onClick={onClose}>
- Cancelar
- </span>
- <span className="modal-span-box active" onClick={logoutRequest}>
- Continuar
- </span>
- </ModalFooter>
- </>
- )}
- </ModalContent>
- </Modal>
- </>
- );
- };
- export default ModalCom;
|